home *** CD-ROM | disk | FTP | other *** search
/ PC Player 2004 May / pc player 2004-05.iso / Demos / FarCry / Data1.cab / _3CA1226656ED42108DB9E08447F897FD < prev    next >
Encoding:
Text File  |  2004-01-06  |  1.8 KB  |  53 lines

  1. // ===============================================================
  2. // Fragment Program: Glare
  3. // Description: glare/contrast/saturation adjustment
  4. // Last Update: 09/10/2003
  5. // Coder: Tiago Sousa
  6. // ===============================================================
  7.  
  8. #include "../CGVPMacro.csi"
  9.  
  10. MainInput 
  11.     uniform sampler2D ScreenTex : texunit0,
  12.     uniform sampler2D GlareTex : texunit1,
  13.     uniform sampler2D GlareAdjustTex : texunit2,
  14.     uniform sampler2D ScreenBluredTex : texunit3,
  15.     uniform float4    vSaturationAmount,
  16.     uniform float4    vConstrastAmount,
  17.     uniform float4    vConstrastAmount02
  18. }
  19.  
  20. DeclarationsScript
  21. {
  22.     OUT_T0_T1_T2_T3
  23.     FOUT
  24. }
  25.  
  26. CoreScript
  27. {         
  28.     // get screen
  29.     float4 fScreenColor = tex2D(ScreenTex, IN.Tex0.xy);
  30.     // get glare map
  31.     float4 fGlareColor  = tex2D(GlareTex, IN.Tex1.xy);
  32.     // get luminosity map
  33.     float4 fGlareAdjust = tex2D(GlareAdjustTex, IN.Tex2.xy);
  34.     // get screen blured map
  35.     //float4 fScreenColorBlured = tex2D(ScreenBluredTex, IN.Tex3.xy);
  36.     
  37.     // ## Add glare to scene ##
  38.     float3 vFinalComposing=saturate((1-fGlareAdjust.xyz)*fGlareColor.xyz+fScreenColor.xyz);
  39.     float  fContrastLerp=saturate((1-fGlareAdjust.z)*vConstrastAmount.w+vConstrastAmount02.w);
  40.  
  41.     // ## adjust scene saturation ##
  42.     float  fSceneLuminosity = dot(float3(0.33, 0.59, 0.11), vFinalComposing.xyz);        
  43.     float3 vSaturationAdjust=lerp(vFinalComposing.xyz, fSceneLuminosity, vSaturationAmount.w);
  44.                 
  45.     // ## adjust scene contrast ##                        
  46.     float3  vConstrastAdjust=saturate(lerp( vSaturationAdjust.xyz, 2*(vSaturationAdjust.xyz-0.5), 1-fContrastLerp ));
  47.                                                 
  48.     OUT.Color.xyz = vConstrastAdjust;
  49.     OUT.Color.a   = 1;
  50. }
  51.  
  52.